// component/modal/modal.js
Component({
    /**
     * 组件的属性列表
     */
    properties: {
        modal: {
            type: Object,
            value: {
                show: false, //*  是否展示
                mask: true, //是否带有遮罩
                tapClose: true, //点击遮罩是否关闭弹窗
                showCancel: true, //是否展示取消按钮
                confirmText: '确认', //确认按钮文案
                cancelText: '取消', //取消按钮文案
                title: "", //*  标题
                type: 0, //0:普通模态窗 1:信息纠正模态窗 2:术前提示模态窗
                content: "", //*  弹窗文字内容
                textAlign: 'center', //文字对齐方式
                color: '#B2B2B2', //内容字体颜色
                fontSize: 30, //内容字号
                width: 600, //宽度
            },
        }
    },

    observers: {
        'modal': function (oldVal, newVal) {
            let type = this.data.modal.type,
                tags = [];

            if (type === 1)
                tags = [
                    {id: 2, name: "已面诊", checked: true},
                    {id: 1, name: "已手术", checked: false},
                    {id: 3, name: "手术信息有误", checked: false}
                ];
            else
                tags = [
                    {id: 1, name: "已手术", checked: true}
                ];
            this.setData({
                tags,
                checked: tags[0]
            });
        }
    },

    /**
     * 组件的初始数据
     */
    data: {
        tags: [],
        checked: null,
    },

    /**
     * 组件的方法列表
     */
    methods: {
        //点击遮罩事件
        tapMask() {
            if (this.data.modal.tapClose !== false) this.cancel();
        },

        //取消事件
        cancel() {
            this.setData({
                'modal.show': false
            });
            this.triggerEvent("cancel");
        },

        //确认事件
        confirm() {
            let data = {};
            if (this.data.modal.type) {
                data = JSON.parse(JSON.stringify(this.data.checked));
            }
            this.triggerEvent("confirm", data);
        },

        //选择tag事件
        checkThis(e) {
            let idx = e.currentTarget.dataset.index;
            //选择当前项不作响应
            if (!this.data.tags[idx].checked) {
                let tags = JSON.parse(JSON.stringify(this.data.tags));
                tags.map((item, index) => {
                    if (idx === index) {
                        tags[idx].checked = true;
                        this.setData({checked: item});
                    }
                    else
                        tags[index].checked = false;
                });
                this.setData({tags,});
            }
        }
    },
})
